package com.baishancloud.log.util

import scala.collection.mutable.ListBuffer

/**
 * 一些数学计算
 *
 * @author ziqiang.wang 
 * @date 2021/11/16 18:46
 */
object MathUtil {

  /**
   * 按照升序排序数字集合，然后取特定位置的数字
   *
   * @param list    数字集合
   * @param percent 百分位，整数，0~1
   * @return 如果集合为空，返回0；如果percent为0，返回集合排序后的第一个元素；如果percent为1，返回集合排序后的最后一个元素
   */
  def percentValue(list: ListBuffer[Double], percent: Double): Double = {
    if (list == null || list.isEmpty) return 0
    val array: Array[Double] = list.sorted(Ordering.Double).toArray
    if (percent == 0) {
      array(0)
    } else if (percent == 1) {
      array(array.length)
    } else {
      array((array.length * percent).toInt)
    }
  }


}
